An object viewability determination system and method

ABSTRACT

A system for calculating viewability scores of objects displayed within a viewport, the system comprising a processing resource configured to perform the following for at least one object of the objects: determine a first value indicative of a relative portion of the object from the viewport; and calculate a viewability score of the object, wherein the viewability score is calculated based on the first value.

TECHNICAL FIELD

The invention relates to an object viewability determination system andmethod.

BACKGROUND

Content providers utilize Computer Graphics (CG) in order to providecontent to viewers in various fields. These fields vary and may includevirtual education, virtual collaboration tools, computerized trainingand simulation, on-line advertising, etc. Content providers desire toensure that the content that is provided thereby, or at least some partsthereof, is actually viewable by the viewers.

CG are computer-generated objects, rendered and manipulated by acomputer, and presented to a viewer. CG objects are drawn within aviewport. A viewport is a polygonal region of a screen used to display aportion of the total scene to be shown to the viewer (e.g. a webbrowser's displaying part of a document, a player's game consoledisplaying part of the game scene, etc.). The content provider wouldlike to ensure that the object is viewable in the viewport. For example,that the object is not partially (or completely) blocked by anotherobject.

Therefore, there is a need to determine the viewability of the CGobjects, drawn within the viewport, in the eyes of the viewer, to makesure that the content reaches its destination.

In addition, content providers would like to ensure viewability overtime, ensuring that the content is viewable by the viewer for a certainamount of time. This measure is known as impression. An example usage ofimpression is in the on-line advertising field where impression is usedby content providers to replace an ad after the as has reached animpression.

In addition, content providers would like to ensure a verifiedimpression. A verified impression is an impression wherein the contentprovider can determine that the viewer has effectively viewed the objectin the viewport over a period of time.

Current viewability determination methods are insufficient as they lack,inter alia, consideration of the relative portion of the object from theviewport wherein it is displayed. For example, the content may bepresent in the viewport, but it is too small to be noticed by theviewer. This deficiency may result in content providers consideringcontent as reaching their destinations, while in fact the content wasnot viewed by the viewer.

There is thus a need in the art for a new object viewabilitydetermination system and method.

References considered to be relevant as background to the presentlydisclosed subject matter are listed below. Acknowledgement of thereferences herein is not to be inferred as meaning that these are in anyway relevant to the patentability of the presently disclosed subjectmatter.

U.S. Pat. No. 9,180,369 (Willis et al.), published on Nov. 10, 2015,discloses a variety of processes for certifying the reporting ofadvertising impressions provided via video games are described. Thesecertification processes optionally take advantage of automatedtechniques for verifying that when advertising data is provided acorresponding advertisement is provided within the video game. Inaddition, as software patches are often provided for video games, arecommended process for certifying patched software is also described.Reporting data associated with advertising impressions provided fromuncertified video games is considered suspect and optionally discarded.

US Patent Application No. 2010/0100429 (McCloskey et al.) published onApr. 22, 2010, discloses an ad system for use in a virtual environment.The ad system includes an ad engine integrated in an advertising enabledapplication, an advertising scheduling system, reporting software,impression metric processing software, and billing components whereincoordinates of ad object and camera data were made available to the adengine during development of the application. Related methods ofdeveloping advertising enabled application software including an adengine and use of a computer system for delivering ad content within avirtual environment are also provided.

US Patent Application No. 2008/0102947 (Hays et al.) published on May 1,2008, discloses an advertisement delivery scheme and associated facilityprovide targeted advertisements for multiple video games withoutadvertisers having to specify specific game titles in which they wouldlike their advertisements placed. The targeted advertisements may beprovided via a network connection while the video game applications areexecuted on gaming devices, or via other means. Advertisements may betargeted to groupings of one or more games, and or groupings of one ormore players. Data about the presentation of advertisements, such asimpression data, may be collected and reported on, along with otherinformation tracked through a game playing device.

U.S. Pat. No. 8,751,310 (van Datta et al.), published on Jun. 10, 2014,discloses a targeted in-game advertising system is provided whereadvertising content may be delivered to a video game networkenvironment. Advertisements may be delivered through the tagging ofadvertising assets in the video game environment according to one ormore characteristics including user geographical location, personalpreferences, a personal profile, video game preferences or video gamegenre. Methodologies for tracking advertising impressions are alsoprovided based on monitoring the video game environment to determine thequality of impression to which the user is exposed in the video gameenvironment.

International Patent Application No. 2008/001472 (Makino et al.)published on Jan. 3, 2008, discloses a visibility evaluation method forevaluating the visibility of an advertisement medium comprising thesteps of setting one or plural sections on a surface of theadvertisement medium; setting one or plural viewing point locations;calculating a color value obtained by converting a color of each thesection for each viewing point location to a numerical value by raytracing for each viewing point location; calculating a first visibilityindex value with respect to each section for each viewing point locationbased on that calculated color value; and calculating a secondvisibility index value with respect to the advertisement medium for eachof the viewing point location by calculating a sum of the firstvisibility index values for each of the viewing point locations.

GENERAL DESCRIPTION

In accordance with a first aspect of the presently disclosed subjectmatter there is provided a system for calculating viewability scores ofobjects displayed within a viewport, the system comprising a processingresource configured to perform the following for at least one object ofthe objects: determine a first value indicative of a relative portion ofthe object from the viewport; and calculate a viewability score of theobject, wherein the viewability score is calculated based on the firstvalue.

In some cases, the processing resource is further configured todetermine a second value indicative of relative portion of the objectvisible in the viewport, and wherein the viewability score is calculatedalso based on the second value.

In some cases, upon the first value being lower than a first lowthreshold, the viewability score is calculated based on a firstunder-threshold-value indicative of the first value being under thefirst low threshold.

In some cases, the first under-threshold-value is zero.

In some cases, upon the second value being lower than a second lowthreshold, the viewability score is calculated based on a secondunder-threshold-value indicative of the second value being under thesecond low threshold.

In some cases, the second under-threshold-value is zero.

In some cases, upon the first value being higher than a first highthreshold, the viewability score is calculated based on a firstover-threshold-value indicative of the first value being over the firsthigh threshold.

In some cases, the first over-threshold-value is one.

In some cases, upon the second value being higher than a second highthreshold, the viewability score is calculated based on a secondover-threshold-value indicative of the second value being over thesecond high threshold.

In some cases, the second over-threshold-value is one.

In some cases, the processing resource is further configured to performthe following to determine the first value: determine (a) a plurality ofpoints discretely distributed on the object, each point representing asection of the object; and (b) for each point of the points, if thepoint is visible to a user viewing the viewport; and divide the size ofthe sections represented by a corresponding point of the pointsdetermined to be visible, by the viewport's size.

In some cases, the determination if each point is visible to the user ismade using ray tracing.

some cases, the determination if each point is visible to the user ismade using an object-id map.

In some cases, the object-id map is a stencil map, and wherein thestencil map maps all of the objects within the viewport.

some cases, the processing resource is further configured to perform thefollowing to determine the second value: determine (a) a plurality ofpoints discretely distributed on the object, each point representing asection of the object; and (b) for each point of the points, if thepoint is visible to a user viewing the viewport; and divide the size ofthe sections represented by a corresponding point of the pointsdetermined to be visible, by the object size.

In some cases, the determination if each point is visible to the user ismade using ray tracing.

In some cases, the determination if each point is visible to the user ismade using an object-id map.

In some cases, the processing resource is further configured to identifyan object impression, indicative of the viewability of the object over atime period, during which a plurality of frames are displayed to a user,exceeding a threshold, wherein at least part of the frames include atleast part of the object, and wherein the viewability score iscalculated for each frame.

In some cases, the processing resource is further configured to performthe following to identify the object impression: for each of the frames,calculate a frame object impression value, based on the object'sviewability score calculated for the corresponding frame, and based on atime duration during which the corresponding frame is displayed.

In some cases, the processing resource is further configured toaggregate the frame object impression scores calculated for the frames,giving rise to an aggregated object impression value, and wherein uponthe aggregated object impression value exceeding a threshold, the objectimpression is identified.

In some cases, the frame object impression value is calculated in realtime.

In some cases, the aggregate is performed continuously.

In some cases, the processing resource is further configured to replacethe object upon the object impression being identified.

In some cases, if the time period is less than a minimal time periodthreshold the processing resource is configured to perform the replaceafter the minimal time period, thereby improving the user's ability toview the object.

In some cases, the processing resource is configured to perform thereplace after the minimal time period plus an additional random timeperiod of up to a second threshold.

In some cases, the object s a video having a video time duration, andwherein if the time period is less than the video time duration, theprocessing resource is configured to perform the replace after the videotime duration.

In some cases, the object is content to be displayed on the viewport.

In some cases, the content is an advertisement.

In some cases, a scene presented in the viewport is a three-dimensionalscene.

In some cases, the object is a two-dimensional object.

In some cases, the object is a three-dimensional object.

In some cases, a scene presented in the viewport is a two-dimensionalscene.

In some cases, the object is a two-dimensional object.

In some cases, the object is a three-dimensional object.

In some cases, the three-dimensional scene is an application scene.

In some cases, the application scene is a gaming application scene.

In some cases, the system further comprising a line-of-sightdetermination device, wherein the processing resource is furtherconfigured to perform the following for each frame of the frames, foridentifying a focused object impression: obtain a line-of-sight reading,designating a point on the viewport obtained from the line-of-sightdetermination device associated with the corresponding frame; determinea distance between the object and the line-of-sight reading within thecorresponding frame; and calculate a frame object focused impressionvalue, based on the object's viewability score calculated for thecorresponding frame, based on the distance determined for thecorresponding frame, and based on a time duration during which thecorresponding frame is displayed.

In some cases, the processing resource is further configured toaggregate the frame focused object impression values calculated for theframes, giving rise to an aggregated focused object impression value,and wherein upon the aggregated focused object impression valueexceeding a threshold, the focused object impression is identified.

In some cases, the system further comprising a line-of-sightdetermination device, wherein the object impression is verified upon aline-of-sight, designating a point on the viewport obtained from theline-of-sight determination device, being below a distance thresholdfrom the object within the plurality of frames.

In some cases, the object is displayed on a first part of the viewportand not displayed on a second part of the viewport.

In some cases, the processing resource is further configured todetermine a third value indicative of color resemblance between colorsof one or more corresponding sections of the object and desired colorsfor the corresponding sections, and wherein the viewability score iscalculated also based on the third value.

In some cases, upon the third value being lower than a third lowthreshold, the viewability score will be calculated based on a thirdunder-threshold-value indicative of the third value being under thethird low threshold.

In some cases, the third under-threshold-value is zero.

In some cases, upon the third value being higher than a third highthreshold, the viewability score will be calculated based on a thirdover-threshold-value indicative of the third value being over the thirdhigh threshold.

In some cases, the third over-threshold-value is one,

In some cases, the processing resource is further configured todetermine a fourth value indicative of content resemblance between anappearance of content within the object and desired appearance of thecontent, and wherein the viewability score is calculated also based onthe fourth value.

In some cases, the processing resource is further configured to performthe following for determining the fourth value: obtain two or more colorvalues each representing a color of a corresponding section of aplurality of sections of the object; and calculate a ratio between atleast one pair of the color values, wherein the fourth value isdetermined according to a difference between the first ratio and anexpected ratio.

In some cases, upon the fourth value being lower than a fourth lowthreshold, the viewability score will be calculated based on a fourthunder-threshold-value indicative of the fourth value being under thefourth low threshold.

In some cases, the fourth under-threshold-value is zero.

In some cases, upon the fourth value being higher than a fourth highthreshold, the viewability score will be calculated based on a fourthover-threshold-value indicative of the fourth value being over thefourth high threshold.

In some cases, the fourth over-threshold-value is one.

ADD the method claims and Beauregard claims (In accordance with a secondaspect . . . . ______Method; In accordance with a third aspect______Beauregard)

BRIEF DESCRIPTION OF THE DRAWINGS

In order to understand the presently disclosed subject matter and to seehow it may be carried out in practice, the subject matter will now bedescribed, by way of non-limiting examples only, with reference to theaccompanying drawings, in which:

FIG. 1 is a block diagram schematically illustrating one example of anenvironment of an object viewability determination system, in accordancewith the presently disclosed subject matter;

FIG. 2 is a block diagram schematically illustrating one example of anobject viewability determination system, in accordance with thepresently disclosed subject matter;

FIG. 3 is a flowchart illustrating one example of a sequence ofoperations carried out for determining a viewability score of an object,in accordance with the presently disclosed subject matter;

FIG. 4 is a flowchart illustrating one example of a sequence ofoperations carried out for identifying an object impression of anobject, in accordance with the presently disclosed subject matter;

FIG. 5 is a flowchart illustrating one example of a sequence ofoperations carried out for determining an aggregated focused impressionvalue of an object, in accordance with the presently disclosed subjectmatter;

FIG. 6 is a diagram schematically illustrating one example of a scene ofobjects where a viewability determination system may use ray tracing, inaccordance with the presently disclosed subject matter;

FIG. 7 is a diagram schematically illustrating one example of a scene ofobjects where a viewability determination system may use an object-idmap, in accordance with the presently disclosed subject matter;

FIG. 8 is a diagram schematically illustrating one example of anobject-id map, in accordance with the presently disclosed subjectmatter; and

FIG. 9 is a diagram schematically illustrating one example of a scene ofobjects where a viewability determination system may determine a colorresemblance value and a content resemblance value, in accordance withthe presently disclosed subject matter.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are setforth in order to provide a thorough understanding of the presentlydisclosed subject matter. However, it will be understood by thoseskilled in the art that the presently disclosed subject matter may bepracticed without these specific details. In other instances, well-knownmethods, procedures, and components have not been described in detail soas not to obscure the presently disclosed subject matter.

In the drawings and descriptions set forth, identical reference numeralsindicate those components that are common to different embodiments orconfigurations.

Unless specifically stated otherwise, as apparent from the followingdiscussions, it is appreciated that throughout the specificationdiscussions utilizing terms such as “determining”, “calculating”,“detecting”, “aggregating”, “identifying”, “replacing” or the like,include action and/or processes of a computer that manipulate and/ortransform data into other data, said data represented as physicalquantities, e.g. such as electronic quantities, and/or said datarepresenting the physical objects. The terms “computer”, “processor”,and “controller” should be expansively construed to cover any' kind ofelectronic device with data processing capabilities, including, by wayof non-limiting example, a personal desktop/laptop computer, a server, acomputing system, a communication device, a smartphone, a tabletcomputer, a smart television, a processor (e.g. digital signal processor(DSP), a microcontroller, a field programmable gate array (FPGA), anapplication specific integrated circuit (ASIC), etc.), a group ofmultiple physical machines sharing performance of various tasks, virtualservers co-residing on a single physical machine, any other electroniccomputing device, and/or any combination thereof.

The operations in accordance with the teachings herein may be performedby a computer specially constructed for the desired purposes or by ageneral-purpose computer specially configured for the desired purpose bya computer program stored in a non-transitory computer readable storagemedium. The term “non-transitory” is used herein to exclude transitory,propagating signals, but to otherwise include any volatile ornon-volatile computer memory technology suitable to the application.

As used herein, the phrase “for example,” “such as”, “for instance” andvariants thereof describe non-limiting embodiments of the presentlydisclosed subject matter. Reference in the specification to “one case”,“some cases”, “other cases” or variants thereof means that a particularfeature, structure or characteristic described in connection with theembodiment(s) is included in at least one embodiment of the presentlydisclosed subject matter. Thus, the appearance of the phrase “one case”,“some cases”, “other cases” or variants thereof does not necessarilyrefer to the same embodiment(s).

It is appreciated that, unless specifically stated otherwise, certainfeatures of the presently disclosed subject matter, which are, forclarity, described in the context of separate embodiments, may also beprovided in combination in a single embodiment. Conversely, variousfeatures of the presently disclosed subject matter, which are, forbrevity, described in the context of a single embodiment, may also beprovided separately or in any suitable sub-combination.

In embodiments of the presently disclosed subject matter, fewer, moreand/or different stages than those shown in FIG. 3-5 may be executed. Inembodiments of the presently disclosed subject matter one or more stagesillustrated in FIG. 3-5 may be executed in a different order and/or oneor more groups of stages may be executed simultaneously. FIGS. 1-2illustrate a general schematic of the system architecture in accordancewith an embodiment of the presently disclosed subject matter. Eachmodule in FIGS. 1-2 can be made up of any combination of software,hardware and/or firmware that performs the functions as defined andexplained herein. The modules in FIGS. 1-2 may be centralized in onelocation or dispersed over more than one location. In other embodimentsof the presently disclosed subject matter, the system may comprisefewer, more, and/or different modules than those shown in FIGS. 1-2.

Any reference in the specification to a method should be applied mutatismutandis to a system capable of executing the method and should beapplied mutatis mutandis to a non-transitory computer readable mediumthat stores instructions that once executed by a computer result in theexecution of the method.

Any reference in the specification to a system should be applied mutatismutandis to a method that may be executed by the system and should beapplied mutatis mutandis to a non-transitory computer readable mediumthat stores instructions that may be executed by the system.

Any reference in the specification to a non-transitory computer readablemedium should be applied mutatis mutandis to a system capable ofexecuting the instructions stored in the non-transitory computerreadable medium and should be applied mutatis mutandis to method thatmay be executed by a computer that reads the instructions stored in thenon-transitory computer readable medium.

Bearing this in mind, attention is drawn to FIG. 1, is a block diagramschematically illustrating one example of an environment of an objectviewability determination system, in accordance with the presentlydisclosed subject matter.

According to certain examples of the presently disclosed subject matter,a viewport 100 can be provided. Viewport 100 may be a polygonal regionof a screen used to display a portion of a scene to a viewer.

The scene may include various Computer Graphic (GC) objects. CG objectsare computer-generated images, rendered and manipulated by a computer,and presented to a viewer. CG objects are drawn within viewport 100. CGobjects may be two-dimensional or three-dimensional objects.

The scene may be a two-dimensional scene, for example: a document to bepresented to a viewer (e.g. a webpage to be presented in a web browser,where in such a case viewport 100 is the web browsers display).

The scene may alternatively be a three-dimensional scene, whereinviewport 100 may refer to a two-dimensional polygon onto which thethree-dimensional scene is projected in accordance to a position of avirtual camera. A virtual camera can be defined by a virtual position(e.g. with respect to a certain object or point in the scene), a virtualorientation (e.g. with respect to a certain object or point/s in thescene) and a virtual viewing angle (the angle of view that the virtualcamera encompasses/sees). The virtual position, and virtual orientationdefine a Point-of-View (POV) the virtual camera. has of the scene andthe virtual viewing angle defines the frames (being for example thestill images which compose the video) that the virtual camera sees oracquires.

An example may be of a three-dimensional video game viewed on a gameconsole display from the position of a virtual camera representing thePOV of a player within the game, where in such a case viewport 100 isthe player's game console display.

Viewport 100 may be the full screen of the viewer or part of theviewer's screen. In Virtual Reality (VR) or Augmented Reality (AR) thescene is displayed to the viewer via two screens (i.e. one screen foreach eye of the viewer), for example via a VR headset or AR glasses wornby the viewer. In VR or AR, viewport 100 may be the two screens or partsof the two screens.

In the figure, a few exemplary objects to be displayed in viewport 100are shown. The exemplary objects represent illustrations of differentsituations where viewability may be impaired due to various reasons.

Object 1 110 has a relative portion size from the viewport 100 that isbelow a threshold, for example, a 5% threshold, so that in-effect object1 110 will not be considered viewable by the viewer of viewport 100. Forexample: Viewport 100 is displaying a three-dimensional scene and object1 110 is far in the background with respect to the POV of the virtualcamera, so that it's relative portion from the viewport 100 is less than5%. Please note that the threshold may be a dynamic threshold, changingin accordance with various parameters of the scene—object'ssignificance, object content type, type of viewport, type of viewer,etc.

Object 2 120 is partially blocked by object 3 130, effecting theviewability of object 2 120 displayed to the viewer in the viewport 100,therefore the viewability of object 2 120 is negatively affected by thepresence of object 3 130. For example: object 2 120 is part of adocument being displayed on a web browser, wherein viewport 100 is theweb browser's display. Object 2 120 is partially blocked by object 3 130that is part of the same document effecting the viewability of object 2120. Another example may be that viewport 100 is displaying athree-dimensional scene. Object 2 120 and object 3 130 are displayed aspart of the three-dimensional scene and the virtual camera is positionedin such a way that in the POV of the virtual camera, object 3 130partially blocks object 2 120 from the viewer of viewport 100, thereforethe viewability of object 2 120 is negatively affected by the presenceof object 3 130. Further examples in this respect are provided withreference to FIGS. 6-9.

Object 4 140 is partly outside of viewport 100, thus only part of object4 140 is displayed to the viewer of viewport 100 and the viewability ofobject 4 140 is below a threshold. For example: object 4 140 is part ofa document being displayed on a web browser, wherein viewport 100 is theweb browser's display. The viewer of viewport 100 scrolls the documentsuch that object 4 140 is partially outside of viewport 100, therebyeffecting the viewability of object 4 140.

It is to be noted that these are mere examples of situations in whichthe viewability of objects is impaired due to various reasons, and othersituations not shown in this figure may also cause viewabilityimpairment.

Turning to FIG. 2, there is shown a block diagram schematicallyillustrating one example of an object viewability determination system,in accordance with the presently disclosed subject matter.

According to certain examples of the presently disclosed subject matter,system 200 (also referred to herein as viewability determination system)can comprise, or be otherwise associated with, a data repository 210(e.g, a database, a storage system, a memory including Read OnlyMemory—ROM, Random Access Memory—RAM, or any other type of memory, etc.)configured to store data, including, inter alia, viewability values,impression values and focused object impression values associated withone or more objects that their viewability should be determined, bysystem 200. The viewability determination of the objects can beperformed by a viewability determination module 250, as further detailedherein.

System 200 may further comprise a network interface 220 (e.g. a networkcard, a WiFi client, a LiFi client, 3G/4G client, or any othercomponent), enabling system 200 to communicate over a network withvarious delivery systems, that deliver objects to be displayed withinthe viewport 100, such as e-learning servers providing learning content,news servers, providing news-related content, ad servers providing ads,etc. In addition, the information about the viewability scores,impression identification and focused object impression values may besent to a central location for use for obtaining insights.

System 200 may further comprise a LoS determination device 230. The LoSdetermination device 230 may designate a point on viewport 100 to whichthe viewer's gaze is directed. LoS determination device 230 may be ahead mounted device worn by the viewer, glasses worn by the viewer or aneye tracking device that can measure the viewer's eye positions and eyemovement.

System 200 further comprises a processing resource 240. Processingresource 240 can be one or more processing units (e.g. centralprocessing units), microprocessors, microcontrollers (e.g.microcontroller units (MCUs)) or any other computing devices or modules,including multiple and/or parallel and/or distributed processing units,which are adapted to independently or cooperatively process data forcontrolling relevant system 200 resources and for enabling operationsrelated to system 200 resources.

The processing resource 240 can one or more of the following modules:viewability determination module 250, impression determination module260 and LoS determination module 270.

Viewability determination module 250 can be configured to determineviewability of objects, as further detailed herein, inter alia withreference to FIGS. 3, 6-9.

Impression determination module 260 can be configured to identify anobject impression, as further detailed herein, inter alia with referenceto FIG. 4.

LoS determination module 270 can be configured to determine anaggregated focused impression value of an object, as further detailedherein, inter alia with reference to FIG. 5.

Turning to FIG. 3, there is shown a flowchart illustrating one exampleof a sequence of operations carried out for determining a viewabilityscore of an object, in accordance with the presently disclosed subjectmatter.

According to some examples of the presently disclosed subject matter,the viewability determination system 200 can be configured to perform aviewability determination process 300, e.g. utilizing the viewabilitydetermination module 250.

For this purpose, the viewability determination system 200 can beconfigured to calculate a viewability score of an object to be displayedin a viewport 100. The viewability score is calculated based on a firstvalue and optionally on one or more of a second value, a third valueand/or a fourth value (block 310).

The viewability determination system 200 may be configured to determinea first value indicative of a relative portion of the object fromviewport 100 (block 320). For this purpose, the viewabilitydetermination system 200 can determine (a) a plurality of pointsdiscretely distributed on the object, each point representing a sectionof the object, and (b) for each point of the points—if the point isvisible to a user viewing the viewport 100. The first value can bedetermined by dividing the size of the sections represented by acorresponding point of the points determined to be visible, byviewport's 100 size.

The determination of the visibility of each point of the points may beachieved by utilizing one or more of several methods.

One such possible method is ray tracing. Ray tracing is a renderingtechnique for generating an image by tracing the path of light as pixelsin an image plane and simulating the effects of its encounters withvirtual objects. Viewability determination system 200 may utilize raytracing in order to determine if a certain point on an object is visiblefrom a viewport 100, representing the display of a POV of a virtualcamera.

FIG. 6 is a diagram schematically illustrating one example of a scene ofobjects where a viewability determination system may use ray tracing, inaccordance with the presently disclosed subject matter. Object 620 ispartially blocked by objects 610 and 630 from the POV of virtual camera640. A plurality of points are discretely distributed on object 620,each point representing a section of object 620. Rays are traced fromthe virtual camera 640 to the plurality of points on object 620. Raysthat reach their point destination on object 620 (i.e. not blocked byother objects) are indication that the section of object 620 representedby that point is visible (indicated in FIG. 6 by light colored rays).Rays that do not reach their point destination on object 620 (i.e. areblocked by other objects) are indication that the section of object 620represented by that point is not visible (indicated in FIG. 6 by darkcolored rays).

Another possible method for determining the visibility of each point ofthe points is an object-id map. In the object-id map method, each objectto be drawn is given an identification and a corresponding mask map iscreated to reflect the order of drawing of the identified objects (i.e.which object is drawn on top of the other objects). System 200 mayutilize object-id map in order to determine if a certain point on anobject is visible from a viewport 100, representing the display of a POVof a virtual camera. One example of an object-id map is a stencil map,mapping all of the objects within the viewport 100.

It is to be noted that these are merely examples and other methodsand/or techniques can be used in order to determine the visibility ofvarious points of an object displayed within the viewport 100.

FIG. 7 is a diagram schematically illustrating one example of a scene ofobjects where a viewability determination system may use an object-idmap, in accordance with the presently disclosed subject matter. Objects710, 720 and 730 are shown as part of the illustrated scene. FIG. 8 is adiagram schematically illustrating one example of an object-id map, inaccordance with the presently disclosed subject matter. The object-idmap in FIG. 8 matches the scene illustrated if FIG. 7, where objects810, 820 and 830 represent the mask map of objects 710, 720 and 730 ofFIG. 7 respectively. As illustrated in FIGS. 7-8, the object mask mapcan help in determining if a point of a specific object is visible orblocked by other objects of the scene, wherein a point is represented byan (X, Y) coordinated within the viewport 100, wherein the (X, Y)coordinates may represent three-dimensional objects in athree-dimensional scene, rendered to a two-dimensional map withinviewport 100.

Having shown some examples of techniques for determining the visibilityof various points of an object displayed within the viewport 100,attention is drawn back to Block 320 of FIG. 3. As indicated above, afirst value is calculated for one or more objects within the viewport100, being indicative of a relative portion of the object from viewport100. In some cases, if the first value is lower than a first lowthreshold the viewability score will be calculated based on a firstunder-threshold-value indicative of the first value being under thefirst low threshold. In some cases, the first under-threshold-value iszero.

An example of the first low threshold may be 0.5% of the viewport's 100size. In such an example, if a specific object's relative portion fromviewport 100, is less than 0.5%, the specific object may not beconsidered viewable to a viewer of viewport 100. In such a case, thefirst under-threshold-value that will be used in the viewability scorecalculation for the specific object will be zero. Please note that thisis a mere example and in other cases the first low threshold may be 1%,5%, 10% or 20% or other, optionally depending on different use-cases.

In some cases, if the first value is higher than a first high threshold,the viewability score will be calculated based on a firstover--threshold-value indicative of the first value being over the firsthigh threshold. In some cases, the first over-threshold-value is one.

An example of the first high threshold may be 6% of the viewport's 100size. In such an example, if a specific object's relative portion fromviewport 100, is more than 6%, the specific object may be consideredfully viewable to a viewer of viewport 100. In such a case, the firstover-threshold-value that will be used in the viewability scorecalculation for the specific object will be one. Please note that thisis a mere example and in other cases the first high threshold may be0.5%, 1%, 10% or 20% or other, optionally depending on differentuse-cases.

Having determined the first value, the viewability determination system200 may be optionally configured to determine a second value indicativeof relative portion of the object visible in the viewport 100. This canbe made by: (a) determining a plurality of points discretely distributedon the object, each point representing a section of the object and (b)for each point of the points, if the point is visible to a user viewingthe viewport 100. The second value can be calculated as the product ofdividing the size of the sections represented by a corresponding pointof the points determined to be visible, by the object size (block 330).

The determination of the visibility of each point of the points may beachieved by utilizing one or more of several methods as detailed above.

In some cases, upon the second value being lower than a second lowthreshold, the viewability score is calculated based on a secondunder-threshold-value indicative of the second value being under thesecond low threshold. In some cases, the second under-threshold-value iszero.

In some cases, if the second value being higher than a second highthreshold, the viewability score will be calculated based on a secondover-threshold-value indicative of the second value being over thesecond high threshold. In some cases, the second over-threshold-value isone.

An example of the second high threshold may be 50% of the object's sizeis viewable in viewport 100. In such an example, if a specific object'sviewable size in viewport 100, is more than 50% of the specific object'ssize, the specific object may be considered fully viewable to a viewerof viewport 100. In such a case, the second over-threshold-value thatwill be used in the viewability score calculation for the specificobject will be one. Please note that this is a mere example and in othercases the second high threshold may be 1%, 10%, 60% or 70% or other,optionally depending on different use-cases.

The viewability determination system 200 may be optionally configured todetermine a third value indicative of color resemblance between colorsof one or more corresponding sections of the object and desired colorsfor the corresponding sections (block 340).

The determination of the color resemblance may be achieved by utilizingone or more of method and/or techniques. One such color resemblancedetermination method is detailed herein and illustrated in FIG. 9. FIG.9 is a diagram schematically illustrating one example of a scenecomprising objects where a viewability determination system maydetermine a color resemblance value and a content resemblance value, inaccordance with the presently disclosed subject matter.

The example illustrated in FIG. 9 is of object 910, having desiredcolors and of scene 920 that is viewed in viewport 100 showing object910 with the actual colors as viewed by the viewer. The colorresemblance determination method includes identifying one or moresegments of object 910 with dominating desired colors. Dominatingdesired color is determined, for example, by calculating the average RedGreen Blue (RGB) values of the pixels within each segment, and determineif all RGB values of the pixels in the segment are within a thresholddistance from the average RGB values. It should be noted that this is amere example of one method of calculation of color dominance and othermethods and or techniques may be used, mutatis mutandis. It is to benoted that wherever RGB is referred, any other color encoding scheme maybe used, including for example Hue, Saturation, Brightness (HSB), YUV(luminance, chroma, violet) or any other color encoding scheme.

Looking, for illustrative purposes at FIG. 9, segments 930, 940 and 950are determined to have dominating desired colors, whereas other segmentsof object 910 have less dominant colors spread throughout the segment.For example, the RGB values of the pixels within other segments ofobject 910 (other than segments 930, 940 and 950), have a variance thatis above a certain threshold that is not surpassed by the variance ofthe RGB values of the pixels within segments 930, 940 and 950.

The dominating desired colors are recorded for each of the segments. Theactual colors of segments 930, 940 and 950 (determined to havedominating desired colors) as displayed in viewport 100 are thandetermined and compared to the corresponding desired colors of each ofthe segments determined to have dominating desired colors.

The measure of resemblance for the expected and actual colors for eachsegment is the basis for the calculation of the third value. An examplemay be that the actual colors of object 910 as displayed in the viewport100 are different than the expected colors of object 910 when object 910is rendered in scene 920 in darker colors when viewed for example in anight time occurring scene.

In the illustrated example shown in FIG. 9, it can be appreciated thatthe actual colors of segments 930 and 940 as seen within the viewport100 (showing scene 920), substantially resemble the expected colors,whereas the actual colors of segment 950 as seen within the viewport 100(showing scene 920) do not resemble the expected colors, due to a flameof the explosion that took place in the scene 920 within the areacovered by segment 950.

Having shown some examples of techniques for determining the colorresemblance value of an object displayed within the viewport 100,attention is drawn back to Block 340 of FIG. 3. As indicated above, athird value is calculated for one or more objects within the viewport100, being indicative the color resemblance of each object with respectto the desired colors of the respective object. In some cases, if thethird value being lower than a third low threshold, the viewabilityscore will be calculated based on a third under-threshold-valueindicative of the third value being under the third low threshold. Insome cases, the third under-threshold-value is zero.

An example of the third low threshold may be 20% of the colorresemblance value of a specific object displayed within the viewport 100with respect to the desired colors of the specific object. In such anexample, if a specific object's color resemblance value is lower than20% with respect to the desired colors of the specific object, thespecific object may be considered not to be color resembling to thedesired colors. In such a case, the third under-threshold-value thatwill be used in the viewability score 30 calculation for the specificobject will be zero. Please note that this is a mere example and inother cases the third low threshold may be 5%, 30%, 50% or 60% or other,optionally depending on different use-cases.

In some cases, if upon the third value being higher than a third highthreshold, the viewability score will be calculated based on a thirdover-threshold-value indicative of the third value being over the thirdhigh threshold. In some cases, the third over-threshold-value is one.

An example of the third high threshold may be 60% of the colorresemblance value of a specific object displayed within the viewport 100with respect to the desired colors of the specific object. In such anexample, if a specific object's color resemblance value is more than 60%with respect to the desired colors of the specific object, the specificobject may be considered to be color resembling to the desired colors.In such a case, the third over-threshold-value that will be used in theviewability score calculation for the specific object will be one.Please note that this is a mere example and in other cases the thirdhigh threshold may be 20%, 40%, 70% or 90% or other, optionallydepending on different use-cases.

The viewability determination system 200 may be optionally configured todetermine a fourth value indicative of content resemblance between anappearance of content within the object and desired appearance of thecontent. This can be made by obtaining two or more color values, eachrepresenting a color of a corresponding segments of a plurality ofsegments of the object; and calculating a ratio between at least onepair of the color values, wherein the fourth value is determinedaccording to a difference between the first ratio and an expected ratio(block 350).

The determination of the content resemblance may be achieved byutilizing one or more of several methods. One such content resemblancemethod is detailed herein and illustrated in FIG. 9. FIG. 9 is a diagramschematically illustrating one example of a scene of objects where aviewability determination system may determine a color resemblance valueand a content resemblance value, in accordance with the presentlydisclosed subject matter.

In continuation of the explanation above, the content resemblance methodincludes identifying two or more segments of object 910 with dominatingdesired colors, for example segments 930, 940 and 950 and calculatingthe ratio between the dominating desired colors of these segments. Thisratio is indicative of the content outline (i.e. the contrast betweenthe expected colors of object 910). The actual ratio may differ from theexpected ratio, for example when the actual object 910 is displayed asseen through a stained-glass window, deforming object's 910 contentcolor ratio in a way that impairs the viewability of object 910 for theviewer of the viewport 100.

It is to be noted that the color values may be obtained from differentframes of the same scene 920.

Having shown some examples of techniques for determining the contentresemblance value of an object displayed within the viewport 100,attention is drawn back to Block 350 of FIG. 3. As indicated above, afourth value is calculated for one or more objects within the viewport100, being indicative the content resemblance of each object withrespect to the desired content of the respective object. In some cases,if the fourth value being lower than a fourth low threshold, theviewability score will be calculated based on a fourthunder-threshold-value indicative of the fourth value being under thefourth low threshold. In some cases, the fourth under-threshold-value iszero.

An example of the fourth low threshold may be 20% of the contentresemblance value of a specific object displayed within the viewport 100with respect to the desired content of the specific object. In such anexample, if a specific object's content resemblance value is lower than20% with respect to the desired content of the specific object, thespecific object may be considered not to be content resembling to thedesired content. In such a case, the fourth under-threshold-value thatwill be used in the viewability score calculation for the specificobject will be zero. Please note that this is a mere example and inother cases the fourth low threshold may be 5%, 30%, 50% or 60% orother, optionally depending on different use-cases.

In some cases, if the fourth value being higher than a fourth highthreshold, the viewability score will be calculated based on a fourthover-threshold-value indicative of the fourth value being over thefourth high threshold. In some cases, the fourth over-threshold-value isone.

An example of the fourth high threshold may be 60% of the contentresemblance value of a specific object displayed within the viewport 100with respect to the desired content of the specific object. In such anexample, if a specific object's content resemblance value is more than60% with respect to the desired content of the specific object, thespecific object may be considered to be content resembling to thedesired content. In such a case, the fourth over-threshold-value thatwill be used in the viewability score calculation for the specificobject will be one. Please note that this is a mere example and in othercases the fourth high threshold may be 20%, 40%, 70% or 90% or other,optionally depending on different use-cases.

After block 310 (i.e. block 320 and optionally one or more of blocks330, 340 and/or 350), the viewability determination system 200 can befurther configured to calculate a viewability score of the object (block360). The viewability score can be calculated based on the first valueand optionally on one or more of the second value, third value and/orfourth value, if such values are calculated.

It is to be noted that, with reference to FIG. 3, some of the blocks canbe integrated into a consolidated block or can be broken down to a fewblocks and/or other blocks may be added. Furthermore, in some cases, theblocks can be performed in a different order than described herein (forexample, block 340 can be performed before block 330, block 350 can beperformed before block 360, etc.). It is to be further noted that someof the blocks are optional. It should be also noted that whilst the flowdiagram is described also with reference to the system elements thatrealizes them, this is by no means binding, and the blocks can beperformed by elements other than those described herein.

Attention is drawn to FIG. 4, showing a flowchart illustrating oneexample of a. sequence of operations carried out for identifying anobject impression of an object, in accordance with the presentlydisclosed subject matter.

According to some examples of the presently disclosed subject matter,the viewability determination system 200 can be configured to perform animpression determination process 400, e.g. utilizing the impressiondetermination module 260.

For this purpose, the viewability determination system 200 can beconfigured to identify an object impression (block 410). An objectimpression is indicative of the viewability of the object over a timeperiod. In order to determine achievement of an object impression, theviewability of the object is required to exceed a threshold during thetime period while a plurality of frames are displayed to a user, whereinat least part of the frames include at least part of the object, andwherein the viewability score is calculated for each frame.

The viewability determination system 200 may be configured to calculate,for each of the frames, a frame object impression value, based on: (a)the object's viewability score calculated for the corresponding frame,and (b) a time duration during which the corresponding frame isdisplayed (block 420).

Having calculated the frame object impression value, for each frame ofthe frames, the viewability determination system 200 may be configuredto aggregate the frame object impression scores calculated for theframes, giving rise to an aggregated object impression value. Upon theaggregated object impression value exceeding a threshold—the objectimpression is identified (block 430).

In some cases, the frame object impression value is calculated in realtime. In some cases, the aggregation (as detailed with reference toblock 430) is performed continuously.

After the object impression is identified, the viewability determinationsystem 200 can be configured to check if the object is a video, having avideo time duration (block 440). If yes, the system 200 waits anadditional time required for the video to finish playing (i.e. so thatthe object is not replaced until the video time duration passes frombeginning of playing of the video) (block 450). After the video timeduration passes, the system 200 replaces the object (block 480).

If, however, the object is not a video, the system 200 can be configuredto check if the time period that passed until impression determinationis less than a minimal time period threshold (block 460). If not—thesystem 200 replaces the object (block 480). If, however, the time periodthat passed until impression determination is less than a minimal timeperiod threshold, the system 200 can be configured to wait additionaltime, as to complete the time period passed until impressiondetermination up to the minimal time period, plus an optional additionalrandom time period of up to a second threshold, thereby improving theuser's ability to view the object (block 470). After the additional timepasses, the system 200 can be configured to replace the object (block480).

In some cases, the object is an ad and the replacement of the objectupon the object impression being identified is the replacement of anexisting ad with a new ad.

It is to be noted, that in some cases, if the second value being lowerthan a second low threshold, the viewability score will be calculatedbased on a second under-threshold-value indicative of the second valuebeing under the second low threshold.

It is to be further noted that, with reference to FIG. 4, some of theblocks can be integrated into a consolidated block or can be broken downto a few blocks and/or other blocks may be added. It is to be furthernoted that some of the blocks are optional. It should be also noted thatwhilst the flow diagram is described also with reference to the systemelements that realizes them, this is by no means binding, and the blockscan be performed by elements other than those described herein.

FIG. 5 is a flowchart illustrating one example of a sequence ofoperations carried out for determining an aggregated focused impressionvalue of an object, in accordance with the presently disclosed subjectmatter.

According to some examples of the presently disclosed subject matter,the viewability determination system 200 can be configured to perform anaggregated focused impression determination process 500, e.g. utilizingthe LoS determination module 270.

For this purpose, the viewability determination system 200 can beconfigured to obtain a line-of-sight reading, designating a point on theviewport 100 obtained from a line-of-sight determination deviceassociated with the corresponding frame, wherein the point representsthe viewer's focus within the viewport 100 (i.e. the viewer's behavioralattention—the point to which the viewer's view is directed) (block 510).

Having obtained a line-of-sight reading, the viewability determinationsystem 200 may be configured to determine a distance (i.e. the radiusdistance between the line-of-sight reading and the object) between theobject and the line-of-sight reading within the corresponding frame(block 520).

After determining a distance between the object and the line-of-sightreading within the corresponding frame, the viewability determinationsystem 200 may be configured to calculate a frame object focusedimpression value, based on the object's viewability score calculated forthe corresponding frame, based on: (a) the distance determined for thecorresponding frame, and (b) a time duration during which thecorresponding frame is displayed (block 530).

Having calculated a frame object focused impression value, theviewability determination system 200 may be configured to aggregate theframe focused object impression values calculated for the frames, givingrise to an aggregated focused object impression value (block 540). Uponthe aggregated focused object impression value exceeding a threshold,the focused object impression is identified (block 540).

It should be noted that although the foregoing discussion has referredin some places to a single object, all of the methods and processesdisclosed herein may be performed on multiple objects, including objectswithin the same viewport 100, optionally simultaneously.

It is to be noted that, with reference to FIG. 5, some of the blocks canbe integrated into a consolidated block or can be broken down to a fewblocks and/or other blocks may be added. It is to be further noted thatsome of the blocks are optional. It should be also noted that whilst theflow diagram is described also with reference to the system elementsthat realizes them, this is by no means binding, and the blocks can beperformed by elements other than those described herein.

It is to be understood that the presently disclosed subject matter isnot limited in its application to the details set forth in thedescription contained herein or illustrated in the drawings. Thepresently disclosed subject matter is capable of other embodiments andof being practiced and carried out in various ways. Hence, it is to beunderstood that the phraseology and terminology employed herein are forthe purpose of description and should not be regarded as limiting. Assuch, those skilled in the art will appreciate that the conception uponwhich this disclosure is based may readily be utilized as a basis fordesigning other structures, methods, and systems for carrying out theseveral purposes of the present presently disclosed subject matter.

It will also be understood that the system according to the presentlydisclosed subject matter can be implemented, at least partly, as asuitably programmed computer. Likewise, the presently disclosed subjectmatter contemplates a computer program being readable by a computer forexecuting the disclosed method. The presently disclosed subject matterfurther contemplates a machine-readable memory tangibly embodying aprogram of instructions executable by the machine for executing thedisclosed method.

1. A system for calculating viewability scores, of objects displayedwithin a viewport, the system comprising a processing resourceconfigured to perform the following for at, least one object of theobjects: determine a first value indicative of a relative portion of theobject from the viewport, by: (A) determining (a) a plurality of pointsdiscretely distributed on the object, each point representing a sectionof the object; and (b) for each point of the points, if the point isvisible to a user viewing the viewport; and (B) dividing the size of thesections represented by the points determined to be visible, by theviewport's size; and calculate a viewability score of the object,wherein the viewability score is calculated based on the first value. 2.The system of claim 1, wherein the processing resource is furtherconfigured to determine a second value indicative of relative portion ofthe object visible in the viewport by: (A) determining (a) a pluralityof points discretely distributed on the object, each point representinga section of the object; and (b) for each point of the points, if thepoint is visible to a user viewing the viewport; and (B) dividing thesize of the sections represented by the points determined to be visible,by the object size; and wherein the viewability score is calculated alsobased on the second value. 3-17. (canceled)
 18. The system of claim 2,wherein the processing resource is further configured to identify anobject impression, indicative of the viewability of the object over atime period, during which a plurality of frames are displayed to a user,exceeding a threshold, wherein at least part of the frames include atleast part of the object, and wherein the viewability score iscalculated for each frame.
 19. The system of claim 18, wherein theprocessing resource is further configured to perform the following toidentify the object impression: for each of the frames, calculate aframe object impression value, based on the object's viewability scorecalculated for the corresponding frame, and based on a time durationduring which the corresponding frame is displayed. 20-36. (canceled) 37.The system of claim 18, further comprising a line-of-sight determinationdevice, wherein the processing resource is further configured to performthe following for each frame of the frames, for identifying a focusedobject impression: obtain a line-of-sight reading, designating a pointon the viewport obtained from the line-of-sight determination deviceassociated with the corresponding frame; determine a distance betweenthe object and the line-of-sight reading within the corresponding frame;and calculate a frame object focused impression value, based on theobject's viewability score calculated for the corresponding frame, basedon the distance determined for the corresponding frame, and based on atime duration during which the corresponding frame is displayed.
 38. Thesystem of claim 37, wherein the processing resource is furtherconfigured to aggregate the frame focused object impression valuescalculated for the frames, giving rise to an aggregated focused objectimpression value, and wherein upon the aggregated focused objectimpression value exceeding a threshold, the focused object impression isidentified.
 39. The system of claim 18, further comprising aline-of-sight determination device, wherein the object impression isverified upon a line-of-sight, designating a point on the viewportobtained from the line-of-sight determination device, being below adistance threshold from the object within the plurality of frames. 40.(canceled)
 41. The system of claim 1, wherein the processing resource isfurther configured to determine a third value indicative of colorresemblance between colors of one or more corresponding sections of theobject and desired colors for the corresponding sections, and whereinthe viewability score is calculated also based on the third value.42-45. (canceled)
 46. The system of claim 1, wherein the processingresource is further configured to determine a fourth value indicative ofcontent resemblance between an appearance of content within the objectand desired appearance of the content, and wherein the viewability scoreis calculated also based on the fourth value.
 47. The system of claim46, wherein the processing resource is further configured to perform thefollowing for determining the fourth value: obtain two or more colorvalues each representing a color of a corresponding section of aplurality of sections of the object; and calculate a ratio between atleast one pair of the color values, wherein the fourth value isdetermined according, to a difference between the first ratio and anexpected ratio. 48-51. (canceled)
 52. A method for calculatingviewability scores of objects displayed within a viewport, the methodcomprising performing the following for at least one object of theobjects: determining, by a processing resource, a first value indicativeof a relative portion of the object from the viewport, by: (A)determining (a) a plurality of points discretely distributed on theobject, each point representing a section of the object; and (b) foreach point of the points, if the point is visible to a user viewing theviewport: and (B) dividing the size of the sections represented In thepoints determined to be visible, by the viewport's size; andcalculating, by the processing resource, a viewability score of theobject, wherein the viewability score is calculated based on the firstvalue.
 53. The method of claim 52, further comprising determining, bythe processing resource, a second value indicative of relative portionof the object visible in the viewport, by: (A) determining (a) aplurality of points discretely distributed on the object each pointrepresenting a section of the object; and (b) for each point of thepoints if the point is visible to a user viewing the viewport; and (B)dividing the size of the sections represented by the points determinedto be visible, by the object size; and wherein the viewability score iscalculated also based on the second value. 54-68. (canceled)
 69. Themethod of claim 53, further comprising identifying, by the processingresource, an object impression, indicative of the viewability of theobject over a time period, during which a plurality of frames aredisplayed to a user, exceeding a threshold, wherein at least part of theframes include at least part of the object, and wherein the viewabilityscore is calculated for each frame.
 70. The method of claim 69, furthercomprising performing the following to identify the object impression:for each of the frames, calculating, by the processing resource, a frameobject impression value, based on the object's viewability scorecalculated for the corresponding frame, and based on a time durationduring which the corresponding frame is displayed. 71-87. (canceled) 88.The method of claim 69, further comprising performing, by the processingresource, the following for each frame of the frames, for identifying afocused object impression: obtaining a line-of-sight reading,designating a point on the viewport obtained from a line-of-sightdetermination device, associated with the corresponding frame;determining a distance between the object and the line-of-sight readingwithin the corresponding frame; and calculating a frame object focusedimpression value, based on the object's viewability score calculated forthe corresponding frame, based on the distance determined for thecorresponding frame, and based on a time duration during which thecorresponding frame is displayed.
 89. The method of claim 88, furthercomprising aggregating, by the processing resource, the frame focusedobject impression values calculated for the frames, giving rise to anaggregated focused object impression value, and wherein upon theaggregated focused object impression value exceeding a threshold, thefocused object impression is identified.
 90. The method of claim 69,further comprising verifying the object impression upon a line-of-sight,designating a point on the viewport obtained from a line-of-sightdetermination device, being below a distance threshold from the objectwithin the plurality of frames.
 91. (canceled)
 92. The method of claim52, further comprising determining, by the processing resource, a thirdvalue indicative of color resemblance between colors of one or morecorresponding sections of the object and desired colors, for thecorresponding sections, and wherein the viewability score is calculatedalso based on the third value. 93-96. (canceled)
 97. The method of claim52, further comprising determining, by the processing resource, a fourthvalue indicative of content resemblance between an appearance of contentwithin the object and desired appearance of the content, and wherein theviewability score is calculated also based on the fourth value. 98-102.(canceled)
 103. A non-transitory computer readable storage medium havingcomputer readable program code embodied therewith, the computer readableprogram code, executable by a process resource of a computer to perform,a method for calculating viewability scores of objects displayed withina viewport, the method comprising performing the following for at leastone object of the objects: determining, by the processing resource, afirst value indicative of a relative portion of the object from theviewport, by: (A) determining (a) a plurality of points discretelydistributed on the object, each point representing a section of theobject and (b) for each point of the points, if the point is visible toa user viewing the viewport and (B) dividing the size of the sectionsrepresented by the points determined to be visible, by the viewport'ssize; and calculating, by the processing resource, a viewability scoreof the object, wherein the viewability score is calculated based on thefirst value.